# # a=input("请输入一个数字：")
# # print(type(a),a)
# num=input("请输入一个整数：")#接收到的一定是字符串语言
# print("a","b","c",sep="##",end="@")
# print(type(num),num)
# print(num + 200)
# #python是解释型语言
# #python属于强类型语言，不同类型的数据不能进行计算
# #shell属于弱类型语言
# #python动态类型语言
# x = 100#则x属于整数类型
# x = "ads"#则x属于字符串类型
# #所以说python属于动态类型语言，谁来识别它是什么类型--解释器
#
# print(int(num)+200)#用int()方法来转换类型，既是它的类型，又是它的转换函数，这种函数又称内建函数，工厂函数（类型转换）
#浮点型
# x = 1.1
# print(type(x))
# print(1-0.1-0.1-0.1)
#字符串
# a="abdas"
# b='asd'
# x="""
# 可以换行
# """
# #字符串运算
# print(a+b)
# print(a*3)
# #字符串格式化
# name= "sa"
# age=18
#
# msg="my name is %s,my age is %d"%(name,age)
# print(msg)
# print(f"my name is {name},my age is {age}")

#floats 不精确的，因为采用的是二进制存储

#字符串属性
#python里面一切皆对象
# a=100
a="xyz"
#a指向100这个地址，后面又指向xyz所在地址的这个对象

# print(dir(a))#属性
# print(a.imag)#用变量名加点接属性名的方式来使用属性

# print(a.isalnum())
# print(a.isupper())
# x = "aa#bb#cc"
# r = x.split("#")
#
# print(r)
#
# print("***".join(r))

# count = 1
# for i in "xyzabc":
#     for j in "#@":
#         if count == 3:
#             # break#跳出当前循环，并不是终止所有进程，除了count = 3，其他的都执行
#         # if j =="@":
#             continue#结束当前循环，开启下一次循环
#         print(f"第{count}次拿取元素：{i}--->{j}")
#     count += 1



#练习
#接受用户从键盘的输入的任意字符串，将字母和数字提取出来
#将提取之后的字符串，大小写互换

# num = input("请输入一个字符串：")
# string = ""
# for i in num:
#     if i.isalnum():
#         string+=i
# exchange = string.swapcase()
# print(exchange)

# print("sadczdsa".startswith("sa"))
# print("sadczdsa".endswith("sa"))
# print(" xyz ".strip())#默认去除空白
# print("#xyz#".strip("#"))
# print("hello the world".title())
# print("welcome to sanchuang".center(50,"*"))
# print("welcome to sanchuang".rjust(50,"*"))
# print("welcome to sanchuang".ljust(50,"*"))



#pep8规范 编码风格指南
# 1.缩进四个空额
# 2.运算符周围空格
# 3.注释独占一行
# 4.逗号后面空格
# 5.函数 类 定义都会空格


#pip 命令  python包管理工具
#python 语法简单 丰富的第三方库
#自定义库 ---自己编写的
#标准库 --- python安装了就自带的
#第三方库  --- 别人写的代码，需要自己去下载才有

# import requests   #这个函数相当于浏览器，即计算机网络里面的http部分讲到的，客户端的user-agent，用户代理
# resp = requests.get("http://www.baidu.com")
# print(resp.text)
#
#


# print("\n")
# print(r"a\tb")
# print(-5//2)#这个符号是除，并向下取最接近的整数
# print(2**3)
# a=600
# b=600
# print(a==b)

#is 和 == 有什么区别 ，区别是前者判断二者是否属于同一个对象，后者判断二者在数值上是否相等

#数值本身就表示真假
#为假的："",0 ,0.0,None,(),[],{},False
#为真的：1
# name = input("请输入一个名字：")
# if name:
#     print("输入正确")
# else:
#     print("输入错误")



#从键盘输入一个数，判断是奇数还是偶数？
#输入的是不是一个整数？？在判断是奇数还是偶数？

# num = input("请输入一个数字：")
# if num % 2 ==1:
#     print("你输入的数字为奇数")
# else:
#     print("你输入的数字是偶数")

#以上代码错误的地方在于，input只能接收一个字符串而不能是数字int类型

#接下里是代码改进

# num = input("请输入一个数字：")
# if num.isdigit():
#     num = int(num)
#     if num%2:
#         print("你输入的数字为奇数")
#     else:
#         print("你输入的数字为偶数")
# else:
#     print("你输入的不是一个出数字，可能包含了其他类型的数据")
#


#其他版本
# num=input("请输入一个数：")
# # if num.isdigit():
# flag = 0
# for i in num :
#     if not  '0'<=i<='9' :
#         flag = 1
#         break
# if flag == 0:
#     if int(num) % 2:
#         print("你输入的是一个奇数")
#     else:
#         print("你输入的是一个偶数")
# else:
#     print("你输入的有误")




#
# while 1 :
#     choice =  input('请输入你的选择：')
#     if choice.lower()=='q':
#         break
#
# try:
#     a = 10/0
# except ZeroDivisionError:
#     print("除数不能为0")
# 尝试除以零时触发。


#当传递给函数的参数类型正确，但值不合适时触发
# try:
#     numbers = int('abc')
# except ValueError:
#     print('无效的值！无法将字符串转换为整数')
#


#当操作或函数应用于不适当类型的对象时出发
# try:
#     result = '10'+6
# except TypeError:
#     print("类型错误！无法将字符串与整数相加")


#当尝试访问列表，元组或其他序列中不存在的索引时触发

# try:
#     my_list=[1,2,3]
#     print(my_list[5])
# except IndexError:
#     print("索引超出范围！")
#


#当尝试访问字典中不存在的键时触发
# try:
#     my_dict = {'name':"alice","age":225}
#     print(my_dict["daw"])
# except KeyError:
#     print("字典中不存在这个键！")


#当尝试访问未定义的变量名或名称时触发
# try:
#     print(z)
# except NameError:
#     print("未定义")
#

#从键盘输入一串字符串，取出里面的整数、小写字母、大写字母，统计出其中出现次数最多的字符
#从键盘接受用户输入的用户名和密码，用户名为root、密码为123456 提示登录成功。
# 否则请重试，有3次重试机会，3次重试机会都用完了，提示登录失败



#从键盘输入一串字符串，取出里面的整数、小写字母、大写字母，统计出其中出现次数最多的字符
# num = input("请输入一串字符串：")
# str=""
# for i in num :
#     if '0'<=i<='9' or 'a'<=i<='z' or 'A'<=i<='Z':
#         str+=i
# counter = {}
# for char in str:
#     if char in counter:
#         counter[char]+=1
#     else:
#         counter[char] = 1
# most_common_char = max(counter,key=counter.get)
# print(f"出现次数最多的字符是'{most_common_char}',出现了{counter[most_common_char]}次")
# 在 Python 中，get 方法是字典（dict）类型的一个非常有用的方法。
# 它允许你安全地访问字典中的值而不用担心键不存在的情况，
# 因为如果指定的键不在字典中，默认情况下它会返回 None 或者你指定的默认值。
# 这避免了直接访问字典时可能遇到的 KeyError 异常。






